Computer systems, especially server systems, can generally be configured to boot from one of several available devices in the computer system. In some systems, a user may be able to specify the preferred boot device or boot order of the computer system. For example, the user of a computer system may instruct the computer system to boot from a specific hard drive, magnetic disk, CD-ROM or other bootable device.
In the case of a computer system having one or more PCI buses, the computer system may boot from any one of the bootable devices coupled to any one of the PCI buses. To facilitate this flexibility, the PCI buses of a multiple PCI bus system may be numbered. In general, the first PCI bus is numbered 0 and the remaining PCI buses are numbered sequentially from 0. Similarly, the devices coupled to each of the sequentially numbered PCI buses may be identified by a device number and a function number. Thus, each device coupled to a PCI bus may be identified by its PCI bus number, device number and function number. As an example, the first device on the first PCI bus may be identified as device 0 on PCI bus 0 with function number 1, the second device on the first PCI bus may be identified as device 1 on PCI bus 0 with function number 0, and so on.
However, the removal of a PCI device from or the addition of a PCI device to the computer system may cause a change in the sequence in which the PCI devices are invoked or numbered. As a result, this new sequence of PCI devices may not match a stored sequence of PCI devices when the new sequence is compared to the previous sequence during the current boot of the computer system. Subsequently, one or more newly added or removed bootable devices may alter the priority of existing bootable devices, thereby resulting in boot errors. As a further result, current selectable boot order techniques occasionally fail to correctly identify plug and play (PnP) expansion headers associated with each bootable device through power cycles when a bootable device is added to or removed from the computer system. In addition, conventional selectable boot order techniques are often unable to distinguish between an existing device and a newly added device when the newly added device is similar to the existing device.